package algorithm;

/**
 * @author littlebadfox
 * @create 2021-05-16-10:53
 * @desc 二分查找法
 */
public class DichotomySort {
    public static void main(String[] args) {
        int[] nums={23,34,45,56,67,78,89};
        int num=10;
        //保存查找到的位置
        int index=-1;
        //初始化min max mid
        int min=0;
        int max=nums.length-1;
        int mid=0;
        while(min<=max){
            //每次开始时重新计算mid
            mid=(min+max)/2;
            //确定查找的范围
            if(num<nums[mid]){
                //从左边查找,max的值向左移动
                max=mid-1;
            }
            else if(num>nums[mid]){
                //从右边查找,min的值向右移动
                min=mid+1;
            }else{
                //如果相等,记录当前的位置
                index=mid;
                break;
            }
        }
        if(index>-1) {
            System.out.println(num + "的位置是" + index);
        }else {
            System.out.println("未找到!");
        }
    }
    
}
